package com.wzq.solution;

import java.util.ArrayList;
import java.util.List;

class Solution357bak {
    int cnt=1;
    public int countNumbersWithUniqueDigits(int n) {
        if(n>0){
            cnt += 9;
        }
        if(n>1){

            for (int k=2;k<=n;k++){
                List<Integer> t = new ArrayList<Integer>();
                for (int i=0;i<n;i++){
                    t.add(-1);
                }
                foo(k,0,t);
            }

        }
        return cnt;
    }
    private void foo(int n, int c, List<Integer> set){
        if(c == n){
            cnt++;
            System.out.println(cnt+"\t"+set);
        }else{
            for(int i=0;i<=9;i++){   
                if(!set.contains(i)){
                    if(i>0 || !isEmpty(set)){
                        set.set(c,i);
                        foo(n,c+1,set);
                        set.set(c,-1);
                    }

                }
            }
        }

    }


    private boolean isEmpty(List<Integer> set){
        for (int i=0;i<set.size();i++){
            if(set.get(i) != -1){
                return false;
            }
        }

        return true;
    }


    public static void main(String[] args) {
        new Solution357bak().countNumbersWithUniqueDigits(3);
    }
}